这个头文件提供 字符类型检测 的相关功能,例如判断一个字符是否是字母、数字或标点符号等,并可以对字母进行大小写转换。
类型 | 标准 | 说明 |
---|
wint_t | C95 | 可以保存任何有效宽字符和至少一个其他值的整数类型 |
wctrans_t | C95 | 保存特定于语言环境的字符映射的标量类型 |
wctype_t | C95 | 保存特定于语言环境的字符分类的标量类型 |
类型 | 标准 | 说明 |
---|
WEOF | C95 | 用于指示错误的 wint_t 类型的非字符值 |
函数 | 标准 | 说明 |
---|
iswalnum | C95 | 判断宽字符是否是字母或数字 |
iswalpha | C95 | 判断宽字符是否是字母 |
iswlower | C95 | 判断宽字符是否是小写字母 |
iswupper | C95 | 判断宽字符是否是大写字母 |
iswdigit | C95 | 判断宽字符是否是数字 |
iswxdigit | C95 | 判断宽字符是否是十六进制数字 |
iswcntrl | C95 | 判断宽字符是否是控制字符 |
iswgraph | C95 | 判断宽字符是否是可显示字符,包含数字、字母、标点符号 |
iswspace | C95 | 判断宽字符是否是空白(white-space)字符,包含空格、水平制表符、竖直制表符、回车符、换行符、换页符 |
iswblank | C99 | 判断宽字符是否是空白(blank)字符,空格、水平制表符 |
iswprint | C95 | 判断宽字符是否是可打印字符,包含数字、字母、标点符号、空白 |
iswpunct | C95 | 判断宽字符是否是标点符号 |
towlower | C95 | 将宽字符转换为小写字母 |
towupper | C95 | 将宽字符转换为大写字母 |
towctrans | C95 | 根据指定的 LC_CTYPE 映射类别执行字符映射 |
wctrans | C95 | 在当前 C 语言环境中查找字符映射类别 |
#include <stdio.h>
#include <locale.h>
#include <wchar.h>
#include <wctype.h>
int main(void) {
if (setlocale(LC_ALL, "zh_CN.UTF-8") == NULL)
{
fwprintf(stderr, L"语言环境设置失败\n");
return 1;
}
wchar_t ch;
wprintf(L"请输入一个字符: ");
wscanf(L"%lc", &ch);
wprintf(L"\n字符 '%lc' 的类型判断:\n", ch);
wprintf(L"iswalnum(): %s\n", iswalnum(ch) ? "是" : "否");
wprintf(L"iswalpha(): %s\n", iswalpha(ch) ? "是" : "否");
wprintf(L"iswdigit(): %s\n", iswdigit(ch) ? "是" : "否");
wprintf(L"iswlower(): %s\n", iswlower(ch) ? "是" : "否");
wprintf(L"iswupper(): %s\n", iswupper(ch) ? "是" : "否");
wprintf(L"iswspace(): %s\n", iswspace(ch) ? "是" : "否");
wprintf(L"iswpunct(): %s\n", iswpunct(ch) ? "是" : "否");
wprintf(L"iswprint(): %s\n", iswprint(ch) ? "是" : "否");
wprintf(L"iswgraph(): %s\n", iswgraph(ch) ? "是" : "否");
wprintf(L"iswcntrl(): %s\n", iswcntrl(ch) ? "是" : "否");
wprintf(L"\n字符 '%lc' 的转换结果:\n", ch);
wprintf(L"towlower(): %lc\n", towlower(ch));
wprintf(L"towupper(): %lc\n", towupper(ch));
return 0;
}
运行结果:
请输入一个字符: 我
字符 '我' 的类型判断:
iswalnum(): 是
iswalpha(): 是
iswdigit(): 否
iswlower(): 否
iswupper(): 否
iswspace(): 否
iswpunct(): 否
iswprint(): 是
iswgraph(): 是
iswcntrl(): 否
字符 '我' 的转换结果:
towlower(): 我
towupper(): 我
请输入一个字符: a
字符 'a' 的类型判断:
iswalnum(): 是
iswalpha(): 是
iswdigit(): 否
iswlower(): 是
iswupper(): 否
iswspace(): 否
iswpunct(): 否
iswprint(): 是
iswgraph(): 是
iswcntrl(): 否
字符 'a' 的转换结果:
towlower(): a
towupper(): A
请输入一个字符: 8
字符 '8' 的类型判断:
iswalnum(): 是
iswalpha(): 否
iswdigit(): 是
iswlower(): 否
iswupper(): 否
iswspace(): 否
iswpunct(): 否
iswprint(): 是
iswgraph(): 是
iswcntrl(): 否
字符 '8' 的转换结果:
towlower(): 8
towupper(): 8